إخفاء خدمة SSH على أوبونتو باستخدام الطرق على المنافذ: شرح مفصل وعملي
تعتبر خدمة SSH (Secure Shell) من أكثر الخدمات أهمية في أنظمة لينكس، وخاصة أوبونتو، لأنها تتيح للمستخدمين إدارة النظام عن بُعد بطريقة آمنة. لكن هذه الخدمة تعرض النظام لمحاولات اختراق وهجمات متكررة من المهاجمين الذين يحاولون استغلالها للوصول غير المصرح به إلى الخادم. لذلك، من الضروري اتخاذ تدابير أمان قوية لحماية SSH، ومن أشهر وأبسط هذه الطرق إخفاء الخدمة عن طريق تغيير المنفذ الافتراضي الخاص بها.
في هذا المقال، سنناقش بشكل معمق كيفية إخفاء خدمة SSH على أوبونتو عن طريق تغيير المنفذ واستخدام طرق متعددة متعلقة بالمنافذ لزيادة مستوى الحماية، إضافة إلى شرح الخطوات التقنية اللازمة وكيفية دمج هذه الطرق مع سياسات أمان أخرى لتعزيز الحماية.
أهمية إخفاء خدمة SSH وحماية المنفذ
خدمة SSH بشكل افتراضي تستخدم المنفذ رقم 22، وهذا معروف لجميع المهاجمين وأدوات الاختراق الآلية التي تبحث عن هذا المنفذ بشكل دائم لمحاولة الدخول إلى النظام عبر كلمات مرور ضعيفة أو استغلال ثغرات. هذا يجعل المنفذ 22 هدفًا أسهل للهجمات مثل هجمات القوة الغاشمة (Brute Force Attacks) وهجمات التسلل.
عندما يتم تغيير المنفذ إلى رقم غير تقليدي يصعب تخمينه، تقل احتمالية التعرض لهجمات آلية بشكل كبير، إذ أن معظم أدوات الاختراق لا تقوم بفحص المنافذ غير التقليدية بشكل مكثف. هذه الخطوة وحدها تعطي طبقة إضافية من الأمان، خاصة عند دمجها مع إجراءات حماية أخرى مثل جدران الحماية (firewalls)، واستخدام مفاتيح SSH بدلاً من كلمات المرور.
تغيير منفذ SSH على أوبونتو: خطوة بخطوة
1. التحقق من المنفذ الجديد المراد استخدامه
قبل تغيير المنفذ، يجب اختيار رقم منفذ جديد لا يستخدمه نظام التشغيل أو خدمات أخرى، ويفضل أن يكون في النطاق من 1024 إلى 65535، لأن المنافذ الأقل من 1024 تكون محجوزة عادة للخدمات النظامية.
2. تعديل ملف إعدادات SSH
يقع ملف إعدادات خدمة SSH في المسار:
bash/etc/ssh/sshd_config
يمكن تحرير الملف باستخدام محرر نصوص مثل nano:
bashsudo nano /etc/ssh/sshd_config
في داخل الملف، ابحث عن السطر الذي يحتوي على:
bash#Port 22
قم بإزالة علامة التعليق # ثم استبدل الرقم 22 بالمنفذ الجديد الذي اخترته، على سبيل المثال:
yamlPort 2222
يمكنك اختيار أي رقم منفذ غير مستخدم كما ذُكر سابقًا.
3. إعادة تشغيل خدمة SSH لتطبيق التغييرات
بعد حفظ الملف، يجب إعادة تشغيل الخدمة لتصبح التغييرات نافذة:
bashsudo systemctl restart ssh
أو على بعض الأنظمة:
bashsudo service ssh restart
4. تحديث قواعد جدار الحماية
إذا كنت تستخدم جدار حماية مثل ufw على أوبونتو، يجب فتح المنفذ الجديد:
bashsudo ufw allow 2222/tcp
كما ينصح بإغلاق المنفذ 22:
bashsudo ufw deny 22/tcp
ثم التأكد من أن جدار الحماية مفعّل:
bashsudo ufw enable
sudo ufw status
تعزيز الأمان مع إخفاء منفذ SSH
تغيير المنفذ هو خطوة أولى ومهمة، لكن هناك إجراءات إضافية لتعزيز إخفاء الخدمة وحمايتها من المهاجمين:
1. استخدام iptables لتقييد الوصول إلى المنفذ
iptables هو أداة قوية لإدارة قواعد جدار الحماية في لينكس، يمكن استخدامها لتقييد الوصول إلى منفذ SSH بحيث يسمح فقط لعناوين IP محددة أو نطاقات معينة بالاتصال.
على سبيل المثال، للسماح فقط لعناوين IP محددة بالاتصال بالمنفذ الجديد 2222:
bashsudo iptables -A INPUT -p tcp -s 192.168.1.100 --dport 2222 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 2222 -j DROP
بهذه الطريقة، أي محاولات اتصال من عناوين IP أخرى ستُرفض.
2. استخدام Port Knocking لإخفاء المنفذ بالكامل
تقنية Port Knocking تعتمد على إرسال تسلسل معين من محاولات الاتصال إلى منافذ غير مفتوحة أولاً، وعند استلام هذا التسلسل يتم فتح منفذ SSH مؤقتًا فقط للمستخدم الذي أرسل التسلسل.
هذه الطريقة تخفي المنفذ فعليًا عن المهاجمين لأنه لا يظهر مفتوحًا إلا بعد تنفيذ “طرق الطرق” الصحيحة.
يمكن إعداد Port Knocking على أوبونتو باستخدام أدوات مثل knockd.
خطوات مختصرة لإعداد knockd:
-
تثبيت الحزمة:
bashsudo apt install knockd
-
تعديل ملف الإعداد:
bashsudo nano /etc/knockd.conf
-
إضافة تسلسل منافذ للطرق وفتح منفذ SSH بعد تلقيها.
-
تشغيل الخدمة:
bashsudo systemctl start knockd
sudo systemctl enable knockd
جدولة جدار الحماية لتغيير حالة المنافذ تلقائيًا
يمكن أيضًا دمج تقنيات متقدمة مثل جدولة فتح وإغلاق المنفذ SSH تلقائيًا في أوقات معينة من اليوم. هذا يعزز الحماية بحيث يكون المنفذ متاحًا فقط خلال ساعات العمل أو أوقات محددة.
يتم ذلك باستخدام أدوات جدولة المهام في لينكس مثل cron مع أوامر iptables لإدارة قواعد الجدار الناري.
استخدام مفاتيح SSH بدلاً من كلمات المرور
من أهم الخطوات الأمنية التي يجب دمجها مع إخفاء المنفذ هي تعطيل الدخول بكلمة المرور واستخدام مفاتيح SSH فقط. مفاتيح SSH تكون معقدة جداً وصعبة التخمين، مما يجعل الهجمات تلقائية غير فعالة.
لتعطيل الدخول بكلمة المرور:
-
تعديل ملف
/etc/ssh/sshd_config:
nginxPasswordAuthentication no
-
إعادة تشغيل الخدمة:
bashsudo systemctl restart ssh
-
التأكد من أن المستخدم يمتلك مفتاح SSH عام مخزن في ملف
~/.ssh/authorized_keysعلى الخادم.
مراقبة ومحاربة محاولات الاتصال غير المرغوب فيها
حتى مع تغيير المنفذ، قد يحاول بعض المهاجمين فحص المنافذ كلها للعثور على منفذ SSH الجديد. لذلك، من المهم مراقبة محاولات الاتصال الغير مصرح بها عبر أدوات مثل fail2ban، التي ترصد محاولات الدخول الفاشلة وتقوم بحظر عناوين IP المشبوهة تلقائيًا.
تثبيت fail2ban:
bashsudo apt install fail2ban
تعديل ملف الإعدادات الخاص بها لدعم المنفذ الجديد، ثم تشغيل الخدمة.
مقارنة بين الطرق المختلفة لإخفاء خدمة SSH
| الطريقة | المميزات | العيوب | مستوى الأمان |
|---|---|---|---|
| تغيير المنفذ | سهل التنفيذ، يمنع الهجمات الآلية | ليس حماية كاملة، يمكن المسح | متوسط |
| تقييد IP باستخدام iptables | يتيح الوصول فقط للمستخدمين الموثوقين | معقد نوعاً ما في الإدارة | عالي |
| Port Knocking | يخفي المنفذ تمامًا، أمن عالي | يحتاج لإعداد دقيق، غير عملي لكل الحالات | عالي جدًا |
| استخدام مفاتيح SSH | يمنع الدخول بكلمات المرور | يتطلب إدارة المفاتيح | عالي |
| دمج fail2ban | يحظر المهاجمين تلقائيًا | يحتاج إعداد وصيانة دورية | عالي |
خلاصة
إخفاء خدمة SSH عن المهاجمين عبر المنافذ هو استراتيجية أمنية مهمة يمكن أن تحسن بشكل ملحوظ من مستوى الحماية على أنظمة أوبونتو. تبدأ هذه الاستراتيجية بتغيير المنفذ الافتراضي إلى رقم غير تقليدي، ثم تدعيمها باستخدام جدران الحماية مع تحديد عناوين IP المسموح لها، إلى جانب تقنيات متقدمة مثل Port Knocking، وإجبار استخدام مفاتيح SSH بدلاً من كلمات المرور، وأدوات مثل fail2ban لرصد ومحاربة محاولات الدخول المشبوهة.
كل هذه الإجراءات معًا تخلق بيئة أمنة صعبة الاختراق، ما يحفظ بياناتك وأنظمتك من التهديدات المتزايدة على الإنترنت. من الضروري دائماً الجمع بين هذه الطرق لتحقيق أفضل مستوى أمان، وعدم الاعتماد على طريقة واحدة فقط.

